<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Tbaas\V20180416\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeFabricTransaction response structure.
 *
 * @method string getTxId() Obtain Transaction ID
 * @method void setTxId(string $TxId) Set Transaction ID
 * @method string getTxHash() Obtain Transaction Hash.
 * @method void setTxHash(string $TxHash) Set Transaction Hash.
 * @method string getTxStatus() Obtain Transaction status.
 * @method void setTxStatus(string $TxStatus) Set Transaction status.
 * @method array getJoinOrgList() Obtain Organization list involved.
 * @method void setJoinOrgList(array $JoinOrgList) Set Organization list involved.
 * @method string getSender() Obtain Transaction sender.
 * @method void setSender(string $Sender) Set Transaction sender.
 * @method string getCreateTime() Obtain Creation time
 * @method void setCreateTime(string $CreateTime) Set Creation time
 * @method integer getBlockHeight() Obtain Block height.
 * @method void setBlockHeight(integer $BlockHeight) Set Block height.
 * @method string getChaincodeName() Obtain The contract to which the exchange belongs.
 * @method void setChaincodeName(string $ChaincodeName) Set The contract to which the exchange belongs.
 * @method string getTransactionData() Obtain Transaction data, base64 encoded, decoded as a json string.
 * @method void setTransactionData(string $TransactionData) Set Transaction data, base64 encoded, decoded as a json string.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeFabricTransactionResponse extends AbstractModel
{
    /**
     * @var string Transaction ID
     */
    public $TxId;

    /**
     * @var string Transaction Hash.
     */
    public $TxHash;

    /**
     * @var string Transaction status.
     */
    public $TxStatus;

    /**
     * @var array Organization list involved.
     */
    public $JoinOrgList;

    /**
     * @var string Transaction sender.
     */
    public $Sender;

    /**
     * @var string Creation time
     */
    public $CreateTime;

    /**
     * @var integer Block height.
     */
    public $BlockHeight;

    /**
     * @var string The contract to which the exchange belongs.
     */
    public $ChaincodeName;

    /**
     * @var string Transaction data, base64 encoded, decoded as a json string.
     */
    public $TransactionData;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $TxId Transaction ID
     * @param string $TxHash Transaction Hash.
     * @param string $TxStatus Transaction status.
     * @param array $JoinOrgList Organization list involved.
     * @param string $Sender Transaction sender.
     * @param string $CreateTime Creation time
     * @param integer $BlockHeight Block height.
     * @param string $ChaincodeName The contract to which the exchange belongs.
     * @param string $TransactionData Transaction data, base64 encoded, decoded as a json string.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("TxId",$param) and $param["TxId"] !== null) {
            $this->TxId = $param["TxId"];
        }

        if (array_key_exists("TxHash",$param) and $param["TxHash"] !== null) {
            $this->TxHash = $param["TxHash"];
        }

        if (array_key_exists("TxStatus",$param) and $param["TxStatus"] !== null) {
            $this->TxStatus = $param["TxStatus"];
        }

        if (array_key_exists("JoinOrgList",$param) and $param["JoinOrgList"] !== null) {
            $this->JoinOrgList = $param["JoinOrgList"];
        }

        if (array_key_exists("Sender",$param) and $param["Sender"] !== null) {
            $this->Sender = $param["Sender"];
        }

        if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) {
            $this->CreateTime = $param["CreateTime"];
        }

        if (array_key_exists("BlockHeight",$param) and $param["BlockHeight"] !== null) {
            $this->BlockHeight = $param["BlockHeight"];
        }

        if (array_key_exists("ChaincodeName",$param) and $param["ChaincodeName"] !== null) {
            $this->ChaincodeName = $param["ChaincodeName"];
        }

        if (array_key_exists("TransactionData",$param) and $param["TransactionData"] !== null) {
            $this->TransactionData = $param["TransactionData"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
